package ig.metrica.ui.escenario;

import ig.finanzas.ManejadorBandas;
import ig.metrica.escenario.GeneraEscenarioBean;
import java.util.Date;


import ig.metrica.ui.ServiceLocator;
//import org.apache.log4j.Logger;

public class ServerThread extends Thread {
    private Date Fecha=null;
    private String Modelo=null;
    private String Escenario=null;
    private GeneraEscenarioBean generaEscenario=null;    
    private Object panel=null;
    private boolean debug=false;
    private boolean datosActuales;
    private ManejadorBandas bandasLiquidez=null;
    private ManejadorBandas bandasRiesgo=null;


    /**
     * Metodo Constructor para la clase
     * @param fecha de generacion del Escenario
     * @param idmodelo del modelo sennalado
     */
    public ServerThread(Date fecha, String modelo,GeneraEscenarioBean generaEscenario,Object panel,boolean debug,boolean datosActuales,ManejadorBandas bandasLiquidez, ManejadorBandas bandasRiesgo) {
        this.generaEscenario=generaEscenario;
        this.Fecha=fecha;
        this.Modelo=modelo;
        this.panel=panel;
        this.debug=debug;
        this.datosActuales=datosActuales;
        this.bandasLiquidez=bandasLiquidez;
        this.bandasRiesgo=bandasRiesgo;
    }
    
//    private static Logger log = Logger.getLogger(ServerThread .class.getName());
    
    public ServerThread(Date fecha, String modelo,String escenario,GeneraEscenarioBean generaEscenario,Object panel,boolean debug,boolean datosActuales,ManejadorBandas bandasLiquidez, ManejadorBandas bandasRiesgo ) {
        this.generaEscenario=generaEscenario;
        this.Fecha=fecha;
        this.Modelo=modelo;
        this.Escenario=escenario;
        this.panel=panel;
        this.debug=debug;
        this.datosActuales=datosActuales;
        this.bandasLiquidez=bandasLiquidez;
        this.bandasRiesgo=bandasRiesgo;
    }
    /* (non-Javadoc)
     * @see java.lang.Runnable#run()
     */
    @Override
    public void run(){
        String mensaje="";
        try{
            if(Escenario!=null){
                mensaje=ServiceLocator.getInstancia().GenerarEscenario(this.Fecha,this.Modelo,this.Escenario,generaEscenario,this.debug,this.datosActuales,this.bandasLiquidez,this.bandasRiesgo);
            }else{
                mensaje=ServiceLocator.getInstancia().GenerarEscenario(this.Fecha,this.Modelo,this.debug,this.datosActuales,this.bandasLiquidez,this.bandasRiesgo);
            }
            
            if(panel instanceof Escenarios){
                ((Escenarios)panel).setFin(mensaje);
            }
        }catch (Exception e){
            if(panel instanceof Escenarios){
                ((ig.metrica.ui.escenario.Escenarios)panel).setFin("Error: "+e.toString());
            }            
            e.printStackTrace();
            return;
        }
        try {
            this.finalize();
        } catch (Throwable ex) {}
    }
}

